ISV: Support for both HAL_PIXEL_FORMAT_YV12 and HAL_PIXEL_FORMAT_INTEL_YV12 formats. Bug: 27589011 Bug: IMINAN-49451 Change-Id: I2cad63b4aa45c6d4b1ad851105966992489614d5 Signed-off-by: Austin Hu <austin.hu@intel.com>
diff --git a/ISV/base/isv_worker.cpp b/ISV/base/isv_worker.cpp index 156b844..9cddd1c 100644 --- a/ISV/base/isv_worker.cpp +++ b/ISV/base/isv_worker.cpp
@@ -232,7 +232,7 @@ memset(&vaExtBuf, 0, sizeof(VASurfaceAttribExternalBuffers)); switch(format) { - case HAL_PIXEL_FORMAT_INTEL_YV12: + case HAL_PIXEL_FORMAT_YV12: vaExtBuf.pixel_format = VA_FOURCC_YV12; vaExtBuf.num_planes = 3; vaExtBuf.pitches[0] = stride; @@ -244,6 +244,19 @@ vaExtBuf.offsets[2] = vaExtBuf.offsets[1] + (stride / 2) * (*height / 2); vaExtBuf.offsets[3] = 0; break; + case HAL_PIXEL_FORMAT_INTEL_YV12: + vaExtBuf.pixel_format = VA_FOURCC_YV12; + vaExtBuf.num_planes = 3; + vaExtBuf.pitches[0] = stride; + vaExtBuf.pitches[1] = stride / 2; + vaExtBuf.pitches[2] = stride / 2; + vaExtBuf.pitches[3] = 0; + vaExtBuf.offsets[0] = 0; + // The height of HAL_PIXEL_FORMAT_INTEL_YV12 gralloc buffer has been aligned with 32 pixels. + vaExtBuf.offsets[1] = stride * ((*height + 31) & ~31); + vaExtBuf.offsets[2] = vaExtBuf.offsets[1] + (stride / 2) * (((*height + 31) & ~31) / 2); + vaExtBuf.offsets[3] = 0; + break; #ifdef TARGET_VPP_USE_GEN case HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL: case HAL_PIXEL_FORMAT_NV12_X_TILED_INTEL: